/*
 * ============================================================================
 * Licensed Materials - Property of IBM
 * Project  Zero
 *
 * (C) Copyright IBM Corp. 2007  All Rights Reserved.
 *
 * US Government Users Restricted Rights - Use, duplication or disclosure
 * restricted by GSA ADP Schedule Contract with IBM Corp.
 * ============================================================================
 * Copyright (c) 1999 - 2006 The PHP Group. All rights reserved.
 * ============================================================================
 */
package com.ibm.p8.engine.parser.core;

//////////////////////////////////////////////////////////////////
//                                                              //
//                 IMPORTANT WARNING                            //
//                                                              //
//   This file was auto-generated by the LPG Eclipse Tooling.   //
//       Do not edit this file. It will be overwritten.         //
//                                                              //
//////////////////////////////////////////////////////////////////
	
import java.util.HashSet;
import java.util.logging.Logger;

import org.jikes.lpg.runtime.BadParseSymFileException;
import org.jikes.lpg.runtime.IParser;
import org.jikes.lpg.runtime.ParseTable;
import org.jikes.lpg.runtime.RuleAction;

import com.ibm.p8.engine.core.FatalError;
import com.ibm.p8.engine.parser.custom.Factory;
import com.ibm.p8.engine.parser.model.Ast;
import com.ibm.p8.utilities.log.P8LogManager;
import com.ibm.phpj.logging.SAPIComponent;
import com.ibm.phpj.logging.SAPILevel;

/**
 *  Basic parser. Each production will create an Ast node, resulting in a concrete parse tree.
 *  See com.ibm.p8.engine.parser.custom.Factory how to declare your own parser to
 *	generate an Abstract Syntax Tree (AST) instead of a concrete parse tree.
 *
 */
public class Parser implements RuleAction {
	private static final Logger LOGGER = P8LogManager._instance
	.getLogger(SAPIComponent.Parser);
	
    private static boolean debug = false;
    /**
     * set the debug flag.
     * @param set - the flag.
     */
    public static void setDebug(boolean set) {
        debug = set;
    }
    /**
     * get the debug flag.
     * @return - the flag.
     */
    public static boolean getDebug() {
        return debug;
    }
    protected LexStream prsStream;
    protected ParseTable prs;
    protected Scanner scanner;
    protected IParser lpgParser;
    protected Token lastErrorToken;
    public Object[] inserts;
    public String msgKey;
    public int lineNumber;
    public String fileName;

    protected String sPARSERERROREOF    = "Parser.eof";
    protected String sPARSERERRORSYNTAX = "Parser.syntax";

	private HashSet astNodesToFlatten = null; 
	private HashSet astNodesToNotFlatten = null; 
	protected boolean bFlatten = true;
	
	/**
	 * Set the parser as flattening the tree.
	 * @param flat - boolean whether to flatten
	 */
	public void setFlatten(boolean flat) {
		bFlatten = flat;
	}

	/**
	 * Get the parser as flattening the tree.
	 * @return - whether to flatten
	 */
	public boolean getFlatten() {
		return bFlatten;
	}	
	/**
	 * get nodes to flatten.
	 * @return - the list of nodes
	 */
	public HashSet getAstNodesToFlatten() {
	    if (astNodesToFlatten == null) {
		    astNodesToFlatten = new HashSet();
		}
		return astNodesToFlatten;
    }

	/**
	 * get nodes to not flatten.
	 * @return - the list of nodes
	 */
	public HashSet getAstNodesToNotFlatten() {
	    if (astNodesToNotFlatten == null) {
		    astNodesToNotFlatten = new HashSet();
		}
		return astNodesToNotFlatten;
    }


	
	/**
	 * Construct.
	 */
    public Parser() {
    }

    /**
     * Set the lex stream.
     * @param inscanner - the scanner.
     * @param inprsStream the lex stream.
     */
    public void setLexStream(Scanner inscanner, LexStream inprsStream) {
        this.prsStream = inprsStream;
        this.prs = new PHPParserprs();
        this.scanner = inscanner;
    }

    /**
     * Create the parser.
     * @return - the new parser.
     * @throws BadParseSymFileException - an error.
     */
    public IParser createParser() throws BadParseSymFileException {
		if (LOGGER.isLoggable(SAPILevel.SEVERE)) {
			LOGGER.log(SAPILevel.SEVERE , "2531");
		}
		throw new FatalError("This method should never be called - use specialized method instead.");

    }

    /**
     * Parse to an ast.
     * @return the root ast node
     */
    public Ast parse() {
		if (LOGGER.isLoggable(SAPILevel.SEVERE)) {
			LOGGER.log(SAPILevel.SEVERE , "2530");
		}
		throw new FatalError("This method should never be called - use specialized method instead.");
    }

	/**
	 * ruleAction.
	 * @param ruleNumber - the rule number
	 */
	public void ruleAction(int ruleNumber) {
	Ast ast;
		if (ruleNumber > 250) {
			ruleAction250(ruleNumber);
			return;
		}
		switch(ruleNumber) {
			case 1: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule1()); }
				ast = Factory.createAst("top_statement_list");
				ast.setRule(Rule.getRule1());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 2: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule2()); }
				ast = Factory.createAst("top_statement_list");
				ast.setRule(Rule.getRule2());
				ast.addChild(this, (Ast)getSym(Rule.getRule2(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 3: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule3()); }
				ast = Factory.createAst("top_statement_list_mandatory");
				ast.setRule(Rule.getRule3());
				ast.addChild(this, (Ast)getSym(Rule.getRule3(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 4: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule4()); }
				ast = Factory.createAst("top_statement_list_mandatory");
				ast.setRule(Rule.getRule4());
				ast.addChild(this, (Ast)getSym(Rule.getRule4(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule4(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 5: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule5()); }
				ast = Factory.createAst("top_statement");
				ast.setRule(Rule.getRule5());
				ast.addChild(this, (Ast)getSym(Rule.getRule5(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 6: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule6()); }
				ast = Factory.createAst("top_statement");
				ast.setRule(Rule.getRule6());
				ast.addChild(this, (Ast)getSym(Rule.getRule6(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 7: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule7()); }
				ast = Factory.createAst("top_statement");
				ast.setRule(Rule.getRule7());
				ast.addChild(this, (Ast)getSym(Rule.getRule7(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 8: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule8()); }
				ast = Factory.createAst("top_statement");
				ast.setRule(Rule.getRule8());
				ast.addChild(this, (Ast)getSym(Rule.getRule8(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 9: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule9()); }
				ast = Factory.createAst("top_statement");
				ast.setRule(Rule.getRule9());
				ast.addChild(this, (Ast)getSym(Rule.getRule9(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 10: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule10()); }
				ast = Factory.createAst("halt_compiler_statement");
				ast.setRule(Rule.getRule10());
				ast.addChild(this, (Ast)getSym(Rule.getRule10(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule10(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule10(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule10(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 11: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule11()); }
				ast = Factory.createAst("inner_statement_list");
				ast.setRule(Rule.getRule11());
				ast.addChild(this, (Ast)getSym(Rule.getRule11(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 12: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule12()); }
				ast = Factory.createAst("statement");
				ast.setRule(Rule.getRule12());
				ast.addChild(this, (Ast)getSym(Rule.getRule12(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 13: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule13()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule13());
				ast.addChild(this, (Ast)getSym(Rule.getRule13(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule13(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule13(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 14: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule14()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule14());
				ast.addChild(this, (Ast)getSym(Rule.getRule14(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule14(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule14(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule14(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule14(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule14(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule14(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 15: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule15()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule15());
				ast.addChild(this, (Ast)getSym(Rule.getRule15(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule15(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule15(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule15(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule15(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule15(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule15(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				ast.addChild(this, (Ast)getSym(Rule.getRule15(), 8), prsStream.getTokenAt(lpgParser.getToken(8)));
				ast.addChild(this, (Ast)getSym(Rule.getRule15(), 9), prsStream.getTokenAt(lpgParser.getToken(9)));
				ast.addChild(this, (Ast)getSym(Rule.getRule15(), 10), prsStream.getTokenAt(lpgParser.getToken(10)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 16: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule16()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule16());
				ast.addChild(this, (Ast)getSym(Rule.getRule16(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule16(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule16(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule16(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule16(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 17: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule17()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule17());
				ast.addChild(this, (Ast)getSym(Rule.getRule17(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule17(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule17(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule17(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule17(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule17(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule17(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 18: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule18()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule18());
				ast.addChild(this, (Ast)getSym(Rule.getRule18(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule18(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule18(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule18(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule18(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule18(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule18(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				ast.addChild(this, (Ast)getSym(Rule.getRule18(), 8), prsStream.getTokenAt(lpgParser.getToken(8)));
				ast.addChild(this, (Ast)getSym(Rule.getRule18(), 9), prsStream.getTokenAt(lpgParser.getToken(9)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 19: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule19()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule19());
				ast.addChild(this, (Ast)getSym(Rule.getRule19(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule19(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule19(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule19(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule19(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 20: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule20()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule20());
				ast.addChild(this, (Ast)getSym(Rule.getRule20(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule20(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 21: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule21()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule21());
				ast.addChild(this, (Ast)getSym(Rule.getRule21(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule21(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule21(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 22: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule22()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule22());
				ast.addChild(this, (Ast)getSym(Rule.getRule22(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule22(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 23: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule23()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule23());
				ast.addChild(this, (Ast)getSym(Rule.getRule23(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule23(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule23(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 24: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule24()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule24());
				ast.addChild(this, (Ast)getSym(Rule.getRule24(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule24(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 25: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule25()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule25());
				ast.addChild(this, (Ast)getSym(Rule.getRule25(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule25(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule25(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 26: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule26()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule26());
				ast.addChild(this, (Ast)getSym(Rule.getRule26(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule26(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule26(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 27: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule27()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule27());
				ast.addChild(this, (Ast)getSym(Rule.getRule27(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule27(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule27(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 28: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule28()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule28());
				ast.addChild(this, (Ast)getSym(Rule.getRule28(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule28(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule28(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 29: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule29()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule29());
				ast.addChild(this, (Ast)getSym(Rule.getRule29(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 30: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule30()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule30());
				ast.addChild(this, (Ast)getSym(Rule.getRule30(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule30(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 31: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule31()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule31());
				ast.addChild(this, (Ast)getSym(Rule.getRule31(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule31(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule31(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 32: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule32()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule32());
				ast.addChild(this, (Ast)getSym(Rule.getRule32(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule32(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule32(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule32(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule32(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 33: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule33()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule33());
				ast.addChild(this, (Ast)getSym(Rule.getRule33(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule33(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule33(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule33(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule33(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule33(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule33(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				ast.addChild(this, (Ast)getSym(Rule.getRule33(), 8), prsStream.getTokenAt(lpgParser.getToken(8)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 34: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule34()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule34());
				ast.addChild(this, (Ast)getSym(Rule.getRule34(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule34(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule34(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule34(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule34(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule34(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule34(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				ast.addChild(this, (Ast)getSym(Rule.getRule34(), 8), prsStream.getTokenAt(lpgParser.getToken(8)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 35: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule35()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule35());
				ast.addChild(this, (Ast)getSym(Rule.getRule35(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule35(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule35(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule35(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule35(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 36: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule36()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule36());
				ast.addChild(this, (Ast)getSym(Rule.getRule36(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 37: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule37()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule37());
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 8), prsStream.getTokenAt(lpgParser.getToken(8)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 9), prsStream.getTokenAt(lpgParser.getToken(9)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 10), prsStream.getTokenAt(lpgParser.getToken(10)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 11), prsStream.getTokenAt(lpgParser.getToken(11)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 12), prsStream.getTokenAt(lpgParser.getToken(12)));
				ast.addChild(this, (Ast)getSym(Rule.getRule37(), 13), prsStream.getTokenAt(lpgParser.getToken(13)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 38: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule38()); }
				ast = Factory.createAst("unticked_statement");
				ast.setRule(Rule.getRule38());
				ast.addChild(this, (Ast)getSym(Rule.getRule38(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule38(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule38(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 39: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule39()); }
				ast = Factory.createAst("additional_catches");
				ast.setRule(Rule.getRule39());
				ast.addChild(this, (Ast)getSym(Rule.getRule39(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 40: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule40()); }
				ast = Factory.createAst("additional_catches");
				ast.setRule(Rule.getRule40());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 41: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule41()); }
				ast = Factory.createAst("non_empty_additional_catches");
				ast.setRule(Rule.getRule41());
				ast.addChild(this, (Ast)getSym(Rule.getRule41(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 42: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule42()); }
				ast = Factory.createAst("non_empty_additional_catches");
				ast.setRule(Rule.getRule42());
				ast.addChild(this, (Ast)getSym(Rule.getRule42(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule42(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 43: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule43()); }
				ast = Factory.createAst("additional_catch");
				ast.setRule(Rule.getRule43());
				ast.addChild(this, (Ast)getSym(Rule.getRule43(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule43(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule43(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule43(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule43(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule43(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule43(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				ast.addChild(this, (Ast)getSym(Rule.getRule43(), 8), prsStream.getTokenAt(lpgParser.getToken(8)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 44: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule44()); }
				ast = Factory.createAst("unset_variables");
				ast.setRule(Rule.getRule44());
				ast.addChild(this, (Ast)getSym(Rule.getRule44(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 45: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule45()); }
				ast = Factory.createAst("unset_variables");
				ast.setRule(Rule.getRule45());
				ast.addChild(this, (Ast)getSym(Rule.getRule45(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule45(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule45(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 46: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule46()); }
				ast = Factory.createAst("unset_variable");
				ast.setRule(Rule.getRule46());
				ast.addChild(this, (Ast)getSym(Rule.getRule46(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 47: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule47()); }
				ast = Factory.createAst("use_filename");
				ast.setRule(Rule.getRule47());
				ast.addChild(this, (Ast)getSym(Rule.getRule47(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 48: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule48()); }
				ast = Factory.createAst("use_filename");
				ast.setRule(Rule.getRule48());
				ast.addChild(this, (Ast)getSym(Rule.getRule48(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule48(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule48(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 49: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule49()); }
				ast = Factory.createAst("function_declaration_statement");
				ast.setRule(Rule.getRule49());
				ast.addChild(this, (Ast)getSym(Rule.getRule49(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 50: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule50()); }
				ast = Factory.createAst("class_declaration_statement");
				ast.setRule(Rule.getRule50());
				ast.addChild(this, (Ast)getSym(Rule.getRule50(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 51: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule51()); }
				ast = Factory.createAst("is_reference");
				ast.setRule(Rule.getRule51());
				ast.addChild(this, (Ast)getSym(Rule.getRule51(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 52: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule52()); }
				ast = Factory.createAst("is_reference");
				ast.setRule(Rule.getRule52());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 53: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule53()); }
				ast = Factory.createAst("unticked_function_declaration_statement");
				ast.setRule(Rule.getRule53());
				ast.addChild(this, (Ast)getSym(Rule.getRule53(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule53(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule53(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule53(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule53(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule53(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule53(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				ast.addChild(this, (Ast)getSym(Rule.getRule53(), 8), prsStream.getTokenAt(lpgParser.getToken(8)));
				ast.addChild(this, (Ast)getSym(Rule.getRule53(), 9), prsStream.getTokenAt(lpgParser.getToken(9)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 54: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule54()); }
				ast = Factory.createAst("unticked_class_declaration_statement");
				ast.setRule(Rule.getRule54());
				ast.addChild(this, (Ast)getSym(Rule.getRule54(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule54(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule54(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule54(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule54(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule54(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule54(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 55: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule55()); }
				ast = Factory.createAst("unticked_class_declaration_statement");
				ast.setRule(Rule.getRule55());
				ast.addChild(this, (Ast)getSym(Rule.getRule55(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule55(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule55(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule55(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule55(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule55(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 56: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule56()); }
				ast = Factory.createAst("class_entry_type");
				ast.setRule(Rule.getRule56());
				ast.addChild(this, (Ast)getSym(Rule.getRule56(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 57: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule57()); }
				ast = Factory.createAst("class_entry_type");
				ast.setRule(Rule.getRule57());
				ast.addChild(this, (Ast)getSym(Rule.getRule57(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule57(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 58: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule58()); }
				ast = Factory.createAst("class_entry_type");
				ast.setRule(Rule.getRule58());
				ast.addChild(this, (Ast)getSym(Rule.getRule58(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule58(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 59: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule59()); }
				ast = Factory.createAst("extends_from");
				ast.setRule(Rule.getRule59());
				ast.addChild(this, (Ast)getSym(Rule.getRule59(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule59(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 60: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule60()); }
				ast = Factory.createAst("extends_from");
				ast.setRule(Rule.getRule60());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 61: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule61()); }
				ast = Factory.createAst("interface_entry");
				ast.setRule(Rule.getRule61());
				ast.addChild(this, (Ast)getSym(Rule.getRule61(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 62: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule62()); }
				ast = Factory.createAst("interface_extends_list");
				ast.setRule(Rule.getRule62());
				ast.addChild(this, (Ast)getSym(Rule.getRule62(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule62(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 63: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule63()); }
				ast = Factory.createAst("interface_extends_list");
				ast.setRule(Rule.getRule63());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 64: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule64()); }
				ast = Factory.createAst("implements_list");
				ast.setRule(Rule.getRule64());
				ast.addChild(this, (Ast)getSym(Rule.getRule64(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule64(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 65: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule65()); }
				ast = Factory.createAst("implements_list");
				ast.setRule(Rule.getRule65());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 66: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule66()); }
				ast = Factory.createAst("interface_list");
				ast.setRule(Rule.getRule66());
				ast.addChild(this, (Ast)getSym(Rule.getRule66(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 67: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule67()); }
				ast = Factory.createAst("interface_list");
				ast.setRule(Rule.getRule67());
				ast.addChild(this, (Ast)getSym(Rule.getRule67(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule67(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule67(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 68: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule68()); }
				ast = Factory.createAst("foreach_optional_arg");
				ast.setRule(Rule.getRule68());
				ast.addChild(this, (Ast)getSym(Rule.getRule68(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule68(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 69: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule69()); }
				ast = Factory.createAst("foreach_optional_arg");
				ast.setRule(Rule.getRule69());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 70: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule70()); }
				ast = Factory.createAst("foreach_variable");
				ast.setRule(Rule.getRule70());
				ast.addChild(this, (Ast)getSym(Rule.getRule70(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 71: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule71()); }
				ast = Factory.createAst("foreach_variable");
				ast.setRule(Rule.getRule71());
				ast.addChild(this, (Ast)getSym(Rule.getRule71(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule71(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 72: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule72()); }
				ast = Factory.createAst("for_statement");
				ast.setRule(Rule.getRule72());
				ast.addChild(this, (Ast)getSym(Rule.getRule72(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 73: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule73()); }
				ast = Factory.createAst("for_statement");
				ast.setRule(Rule.getRule73());
				ast.addChild(this, (Ast)getSym(Rule.getRule73(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule73(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule73(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule73(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 74: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule74()); }
				ast = Factory.createAst("foreach_statement");
				ast.setRule(Rule.getRule74());
				ast.addChild(this, (Ast)getSym(Rule.getRule74(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 75: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule75()); }
				ast = Factory.createAst("foreach_statement");
				ast.setRule(Rule.getRule75());
				ast.addChild(this, (Ast)getSym(Rule.getRule75(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule75(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule75(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule75(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 76: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule76()); }
				ast = Factory.createAst("declare_statement");
				ast.setRule(Rule.getRule76());
				ast.addChild(this, (Ast)getSym(Rule.getRule76(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 77: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule77()); }
				ast = Factory.createAst("declare_statement");
				ast.setRule(Rule.getRule77());
				ast.addChild(this, (Ast)getSym(Rule.getRule77(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule77(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule77(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule77(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 78: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule78()); }
				ast = Factory.createAst("declare_list");
				ast.setRule(Rule.getRule78());
				ast.addChild(this, (Ast)getSym(Rule.getRule78(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 79: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule79()); }
				ast = Factory.createAst("declare_list");
				ast.setRule(Rule.getRule79());
				ast.addChild(this, (Ast)getSym(Rule.getRule79(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule79(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule79(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 80: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule80()); }
				ast = Factory.createAst("variable_declaration");
				ast.setRule(Rule.getRule80());
				ast.addChild(this, (Ast)getSym(Rule.getRule80(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule80(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule80(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 81: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule81()); }
				ast = Factory.createAst("switch_case_list");
				ast.setRule(Rule.getRule81());
				ast.addChild(this, (Ast)getSym(Rule.getRule81(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule81(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule81(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 82: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule82()); }
				ast = Factory.createAst("switch_case_list");
				ast.setRule(Rule.getRule82());
				ast.addChild(this, (Ast)getSym(Rule.getRule82(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule82(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule82(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule82(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 83: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule83()); }
				ast = Factory.createAst("switch_case_list");
				ast.setRule(Rule.getRule83());
				ast.addChild(this, (Ast)getSym(Rule.getRule83(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule83(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule83(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule83(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 84: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule84()); }
				ast = Factory.createAst("switch_case_list");
				ast.setRule(Rule.getRule84());
				ast.addChild(this, (Ast)getSym(Rule.getRule84(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule84(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule84(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule84(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule84(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 85: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule85()); }
				ast = Factory.createAst("case_list");
				ast.setRule(Rule.getRule85());
				ast.addChild(this, (Ast)getSym(Rule.getRule85(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule85(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 86: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule86()); }
				ast = Factory.createAst("case_list");
				ast.setRule(Rule.getRule86());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 87: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule87()); }
				ast = Factory.createAst("case_block");
				ast.setRule(Rule.getRule87());
				ast.addChild(this, (Ast)getSym(Rule.getRule87(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule87(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule87(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule87(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 88: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule88()); }
				ast = Factory.createAst("case_block");
				ast.setRule(Rule.getRule88());
				ast.addChild(this, (Ast)getSym(Rule.getRule88(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule88(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule88(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 89: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule89()); }
				ast = Factory.createAst("case_separator");
				ast.setRule(Rule.getRule89());
				ast.addChild(this, (Ast)getSym(Rule.getRule89(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 90: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule90()); }
				ast = Factory.createAst("case_separator");
				ast.setRule(Rule.getRule90());
				ast.addChild(this, (Ast)getSym(Rule.getRule90(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 91: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule91()); }
				ast = Factory.createAst("while_statement");
				ast.setRule(Rule.getRule91());
				ast.addChild(this, (Ast)getSym(Rule.getRule91(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 92: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule92()); }
				ast = Factory.createAst("while_statement");
				ast.setRule(Rule.getRule92());
				ast.addChild(this, (Ast)getSym(Rule.getRule92(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule92(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule92(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule92(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 93: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule93()); }
				ast = Factory.createAst("elseif_list");
				ast.setRule(Rule.getRule93());
				ast.addChild(this, (Ast)getSym(Rule.getRule93(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule93(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule93(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule93(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule93(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule93(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 94: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule94()); }
				ast = Factory.createAst("elseif_list");
				ast.setRule(Rule.getRule94());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 95: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule95()); }
				ast = Factory.createAst("new_elseif_list");
				ast.setRule(Rule.getRule95());
				ast.addChild(this, (Ast)getSym(Rule.getRule95(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule95(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule95(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule95(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule95(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule95(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule95(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 96: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule96()); }
				ast = Factory.createAst("new_elseif_list");
				ast.setRule(Rule.getRule96());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 97: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule97()); }
				ast = Factory.createAst("else_single");
				ast.setRule(Rule.getRule97());
				ast.addChild(this, (Ast)getSym(Rule.getRule97(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule97(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 98: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule98()); }
				ast = Factory.createAst("else_single");
				ast.setRule(Rule.getRule98());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 99: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule99()); }
				ast = Factory.createAst("new_else_single");
				ast.setRule(Rule.getRule99());
				ast.addChild(this, (Ast)getSym(Rule.getRule99(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule99(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule99(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 100: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule100()); }
				ast = Factory.createAst("new_else_single");
				ast.setRule(Rule.getRule100());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 101: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule101()); }
				ast = Factory.createAst("parameter_list");
				ast.setRule(Rule.getRule101());
				ast.addChild(this, (Ast)getSym(Rule.getRule101(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 102: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule102()); }
				ast = Factory.createAst("parameter_list");
				ast.setRule(Rule.getRule102());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 103: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule103()); }
				ast = Factory.createAst("non_empty_parameter_list");
				ast.setRule(Rule.getRule103());
				ast.addChild(this, (Ast)getSym(Rule.getRule103(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 104: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule104()); }
				ast = Factory.createAst("non_empty_parameter_list");
				ast.setRule(Rule.getRule104());
				ast.addChild(this, (Ast)getSym(Rule.getRule104(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule104(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule104(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 105: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule105()); }
				ast = Factory.createAst("parameter_declaration");
				ast.setRule(Rule.getRule105());
				ast.addChild(this, (Ast)getSym(Rule.getRule105(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule105(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 106: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule106()); }
				ast = Factory.createAst("parameter_declaration");
				ast.setRule(Rule.getRule106());
				ast.addChild(this, (Ast)getSym(Rule.getRule106(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule106(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule106(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 107: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule107()); }
				ast = Factory.createAst("parameter_declaration");
				ast.setRule(Rule.getRule107());
				ast.addChild(this, (Ast)getSym(Rule.getRule107(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule107(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule107(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule107(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule107(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 108: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule108()); }
				ast = Factory.createAst("parameter_declaration");
				ast.setRule(Rule.getRule108());
				ast.addChild(this, (Ast)getSym(Rule.getRule108(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule108(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule108(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule108(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 109: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule109()); }
				ast = Factory.createAst("optional_class_type");
				ast.setRule(Rule.getRule109());
				ast.addChild(this, (Ast)getSym(Rule.getRule109(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 110: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule110()); }
				ast = Factory.createAst("optional_class_type");
				ast.setRule(Rule.getRule110());
				ast.addChild(this, (Ast)getSym(Rule.getRule110(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 111: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule111()); }
				ast = Factory.createAst("optional_class_type");
				ast.setRule(Rule.getRule111());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 112: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule112()); }
				ast = Factory.createAst("function_call_parameter_list");
				ast.setRule(Rule.getRule112());
				ast.addChild(this, (Ast)getSym(Rule.getRule112(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 113: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule113()); }
				ast = Factory.createAst("function_call_parameter_list");
				ast.setRule(Rule.getRule113());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 114: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule114()); }
				ast = Factory.createAst("non_empty_function_call_parameter_list");
				ast.setRule(Rule.getRule114());
				ast.addChild(this, (Ast)getSym(Rule.getRule114(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 115: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule115()); }
				ast = Factory.createAst("non_empty_function_call_parameter_list");
				ast.setRule(Rule.getRule115());
				ast.addChild(this, (Ast)getSym(Rule.getRule115(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule115(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule115(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 116: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule116()); }
				ast = Factory.createAst("non_empty_function_call_parameter");
				ast.setRule(Rule.getRule116());
				ast.addChild(this, (Ast)getSym(Rule.getRule116(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 117: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule117()); }
				ast = Factory.createAst("non_empty_function_call_parameter");
				ast.setRule(Rule.getRule117());
				ast.addChild(this, (Ast)getSym(Rule.getRule117(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule117(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 118: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule118()); }
				ast = Factory.createAst("non_empty_function_call_parameter");
				ast.setRule(Rule.getRule118());
				ast.addChild(this, (Ast)getSym(Rule.getRule118(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 119: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule119()); }
				ast = Factory.createAst("global_var_list");
				ast.setRule(Rule.getRule119());
				ast.addChild(this, (Ast)getSym(Rule.getRule119(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule119(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule119(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 120: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule120()); }
				ast = Factory.createAst("global_var_list");
				ast.setRule(Rule.getRule120());
				ast.addChild(this, (Ast)getSym(Rule.getRule120(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 121: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule121()); }
				ast = Factory.createAst("global_var");
				ast.setRule(Rule.getRule121());
				ast.addChild(this, (Ast)getSym(Rule.getRule121(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 122: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule122()); }
				ast = Factory.createAst("global_var");
				ast.setRule(Rule.getRule122());
				ast.addChild(this, (Ast)getSym(Rule.getRule122(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule122(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 123: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule123()); }
				ast = Factory.createAst("global_var");
				ast.setRule(Rule.getRule123());
				ast.addChild(this, (Ast)getSym(Rule.getRule123(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule123(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule123(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule123(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 124: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule124()); }
				ast = Factory.createAst("global_var");
				ast.setRule(Rule.getRule124());
				ast.addChild(this, (Ast)getSym(Rule.getRule124(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule124(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule124(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 125: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule125()); }
				ast = Factory.createAst("static_var_list");
				ast.setRule(Rule.getRule125());
				ast.addChild(this, (Ast)getSym(Rule.getRule125(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule125(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule125(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 126: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule126()); }
				ast = Factory.createAst("static_var_list");
				ast.setRule(Rule.getRule126());
				ast.addChild(this, (Ast)getSym(Rule.getRule126(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 127: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule127()); }
				ast = Factory.createAst("static_var");
				ast.setRule(Rule.getRule127());
				ast.addChild(this, (Ast)getSym(Rule.getRule127(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 128: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule128()); }
				ast = Factory.createAst("static_var");
				ast.setRule(Rule.getRule128());
				ast.addChild(this, (Ast)getSym(Rule.getRule128(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule128(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule128(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 129: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule129()); }
				ast = Factory.createAst("class_statement_list");
				ast.setRule(Rule.getRule129());
				ast.addChild(this, (Ast)getSym(Rule.getRule129(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule129(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 130: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule130()); }
				ast = Factory.createAst("class_statement_list");
				ast.setRule(Rule.getRule130());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 131: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule131()); }
				ast = Factory.createAst("class_statement");
				ast.setRule(Rule.getRule131());
				ast.addChild(this, (Ast)getSym(Rule.getRule131(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule131(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule131(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 132: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule132()); }
				ast = Factory.createAst("class_statement");
				ast.setRule(Rule.getRule132());
				ast.addChild(this, (Ast)getSym(Rule.getRule132(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule132(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 133: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule133()); }
				ast = Factory.createAst("class_statement");
				ast.setRule(Rule.getRule133());
				ast.addChild(this, (Ast)getSym(Rule.getRule133(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule133(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule133(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule133(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule133(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule133(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				ast.addChild(this, (Ast)getSym(Rule.getRule133(), 7), prsStream.getTokenAt(lpgParser.getToken(7)));
				ast.addChild(this, (Ast)getSym(Rule.getRule133(), 8), prsStream.getTokenAt(lpgParser.getToken(8)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 134: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule134()); }
				ast = Factory.createAst("method_body");
				ast.setRule(Rule.getRule134());
				ast.addChild(this, (Ast)getSym(Rule.getRule134(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 135: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule135()); }
				ast = Factory.createAst("method_body");
				ast.setRule(Rule.getRule135());
				ast.addChild(this, (Ast)getSym(Rule.getRule135(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule135(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule135(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 136: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule136()); }
				ast = Factory.createAst("variable_modifiers");
				ast.setRule(Rule.getRule136());
				ast.addChild(this, (Ast)getSym(Rule.getRule136(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 137: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule137()); }
				ast = Factory.createAst("variable_modifiers");
				ast.setRule(Rule.getRule137());
				ast.addChild(this, (Ast)getSym(Rule.getRule137(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 138: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule138()); }
				ast = Factory.createAst("method_modifiers");
				ast.setRule(Rule.getRule138());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 139: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule139()); }
				ast = Factory.createAst("method_modifiers");
				ast.setRule(Rule.getRule139());
				ast.addChild(this, (Ast)getSym(Rule.getRule139(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 140: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule140()); }
				ast = Factory.createAst("non_empty_member_modifiers");
				ast.setRule(Rule.getRule140());
				ast.addChild(this, (Ast)getSym(Rule.getRule140(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 141: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule141()); }
				ast = Factory.createAst("non_empty_member_modifiers");
				ast.setRule(Rule.getRule141());
				ast.addChild(this, (Ast)getSym(Rule.getRule141(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule141(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 142: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule142()); }
				ast = Factory.createAst("member_modifier");
				ast.setRule(Rule.getRule142());
				ast.addChild(this, (Ast)getSym(Rule.getRule142(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 143: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule143()); }
				ast = Factory.createAst("member_modifier");
				ast.setRule(Rule.getRule143());
				ast.addChild(this, (Ast)getSym(Rule.getRule143(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 144: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule144()); }
				ast = Factory.createAst("member_modifier");
				ast.setRule(Rule.getRule144());
				ast.addChild(this, (Ast)getSym(Rule.getRule144(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 145: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule145()); }
				ast = Factory.createAst("member_modifier");
				ast.setRule(Rule.getRule145());
				ast.addChild(this, (Ast)getSym(Rule.getRule145(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 146: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule146()); }
				ast = Factory.createAst("member_modifier");
				ast.setRule(Rule.getRule146());
				ast.addChild(this, (Ast)getSym(Rule.getRule146(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 147: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule147()); }
				ast = Factory.createAst("member_modifier");
				ast.setRule(Rule.getRule147());
				ast.addChild(this, (Ast)getSym(Rule.getRule147(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 148: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule148()); }
				ast = Factory.createAst("class_variable_declaration");
				ast.setRule(Rule.getRule148());
				ast.addChild(this, (Ast)getSym(Rule.getRule148(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule148(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule148(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 149: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule149()); }
				ast = Factory.createAst("class_variable_declaration");
				ast.setRule(Rule.getRule149());
				ast.addChild(this, (Ast)getSym(Rule.getRule149(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 150: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule150()); }
				ast = Factory.createAst("class_variable_declaration_element");
				ast.setRule(Rule.getRule150());
				ast.addChild(this, (Ast)getSym(Rule.getRule150(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 151: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule151()); }
				ast = Factory.createAst("class_variable_declaration_element");
				ast.setRule(Rule.getRule151());
				ast.addChild(this, (Ast)getSym(Rule.getRule151(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule151(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule151(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 152: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule152()); }
				ast = Factory.createAst("class_constant_declaration");
				ast.setRule(Rule.getRule152());
				ast.addChild(this, (Ast)getSym(Rule.getRule152(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule152(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule152(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 153: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule153()); }
				ast = Factory.createAst("class_constant_declaration");
				ast.setRule(Rule.getRule153());
				ast.addChild(this, (Ast)getSym(Rule.getRule153(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule153(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 154: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule154()); }
				ast = Factory.createAst("class_constant_declaration_element");
				ast.setRule(Rule.getRule154());
				ast.addChild(this, (Ast)getSym(Rule.getRule154(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule154(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule154(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 155: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule155()); }
				ast = Factory.createAst("echo_expr_list");
				ast.setRule(Rule.getRule155());
				ast.addChild(this, (Ast)getSym(Rule.getRule155(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule155(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule155(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 156: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule156()); }
				ast = Factory.createAst("echo_expr_list");
				ast.setRule(Rule.getRule156());
				ast.addChild(this, (Ast)getSym(Rule.getRule156(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 157: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule157()); }
				ast = Factory.createAst("for_expr");
				ast.setRule(Rule.getRule157());
				ast.addChild(this, (Ast)getSym(Rule.getRule157(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 158: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule158()); }
				ast = Factory.createAst("for_expr");
				ast.setRule(Rule.getRule158());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 159: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule159()); }
				ast = Factory.createAst("non_empty_for_expr");
				ast.setRule(Rule.getRule159());
				ast.addChild(this, (Ast)getSym(Rule.getRule159(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule159(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule159(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 160: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule160()); }
				ast = Factory.createAst("non_empty_for_expr");
				ast.setRule(Rule.getRule160());
				ast.addChild(this, (Ast)getSym(Rule.getRule160(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 161: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule161()); }
				ast = Factory.createAst("pw_logical_expr_oo");
				ast.setRule(Rule.getRule161());
				ast.addChild(this, (Ast)getSym(Rule.getRule161(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 162: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule162()); }
				ast = Factory.createAst("pw_logical_or_oo");
				ast.setRule(Rule.getRule162());
				ast.addChild(this, (Ast)getSym(Rule.getRule162(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 163: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule163()); }
				ast = Factory.createAst("pw_logical_or_oo");
				ast.setRule(Rule.getRule163());
				ast.addChild(this, (Ast)getSym(Rule.getRule163(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule163(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule163(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 164: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule164()); }
				ast = Factory.createAst("pw_logical_xor_oo");
				ast.setRule(Rule.getRule164());
				ast.addChild(this, (Ast)getSym(Rule.getRule164(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 165: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule165()); }
				ast = Factory.createAst("pw_logical_xor_oo");
				ast.setRule(Rule.getRule165());
				ast.addChild(this, (Ast)getSym(Rule.getRule165(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule165(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule165(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 166: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule166()); }
				ast = Factory.createAst("pw_logical_and_oo");
				ast.setRule(Rule.getRule166());
				ast.addChild(this, (Ast)getSym(Rule.getRule166(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 167: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule167()); }
				ast = Factory.createAst("pw_logical_and_oo");
				ast.setRule(Rule.getRule167());
				ast.addChild(this, (Ast)getSym(Rule.getRule167(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule167(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule167(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 168: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule168()); }
				ast = Factory.createAst("pw_print");
				ast.setRule(Rule.getRule168());
				ast.addChild(this, (Ast)getSym(Rule.getRule168(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule168(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 169: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule169()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule169());
				ast.addChild(this, (Ast)getSym(Rule.getRule169(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule169(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule169(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 170: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule170()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule170());
				ast.addChild(this, (Ast)getSym(Rule.getRule170(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule170(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule170(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 171: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule171()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule171());
				ast.addChild(this, (Ast)getSym(Rule.getRule171(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule171(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule171(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule171(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 172: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule172()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule172());
				ast.addChild(this, (Ast)getSym(Rule.getRule172(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule172(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule172(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule172(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule172(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule172(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 173: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule173()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule173());
				ast.addChild(this, (Ast)getSym(Rule.getRule173(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule173(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule173(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 174: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule174()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule174());
				ast.addChild(this, (Ast)getSym(Rule.getRule174(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule174(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule174(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 175: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule175()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule175());
				ast.addChild(this, (Ast)getSym(Rule.getRule175(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule175(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule175(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 176: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule176()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule176());
				ast.addChild(this, (Ast)getSym(Rule.getRule176(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule176(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule176(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 177: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule177()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule177());
				ast.addChild(this, (Ast)getSym(Rule.getRule177(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule177(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule177(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 178: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule178()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule178());
				ast.addChild(this, (Ast)getSym(Rule.getRule178(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule178(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule178(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 179: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule179()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule179());
				ast.addChild(this, (Ast)getSym(Rule.getRule179(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule179(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule179(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 180: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule180()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule180());
				ast.addChild(this, (Ast)getSym(Rule.getRule180(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule180(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule180(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 181: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule181()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule181());
				ast.addChild(this, (Ast)getSym(Rule.getRule181(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule181(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule181(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 182: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule182()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule182());
				ast.addChild(this, (Ast)getSym(Rule.getRule182(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule182(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule182(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 183: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule183()); }
				ast = Factory.createAst("pw_assignment");
				ast.setRule(Rule.getRule183());
				ast.addChild(this, (Ast)getSym(Rule.getRule183(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule183(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule183(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 184: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule184()); }
				ast = Factory.createAst("pw_trinary_expr_oo");
				ast.setRule(Rule.getRule184());
				ast.addChild(this, (Ast)getSym(Rule.getRule184(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 185: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule185()); }
				ast = Factory.createAst("pw_trinary_expr_oo");
				ast.setRule(Rule.getRule185());
				ast.addChild(this, (Ast)getSym(Rule.getRule185(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule185(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule185(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule185(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule185(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 186: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule186()); }
				ast = Factory.createAst("pw_trinary_expr_oo");
				ast.setRule(Rule.getRule186());
				ast.addChild(this, (Ast)getSym(Rule.getRule186(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule186(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule186(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule186(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule186(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 187: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule187()); }
				ast = Factory.createAst("pw_boolean_expr_oo");
				ast.setRule(Rule.getRule187());
				ast.addChild(this, (Ast)getSym(Rule.getRule187(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 188: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule188()); }
				ast = Factory.createAst("pw_boolean_or_oo");
				ast.setRule(Rule.getRule188());
				ast.addChild(this, (Ast)getSym(Rule.getRule188(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 189: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule189()); }
				ast = Factory.createAst("pw_boolean_or_oo");
				ast.setRule(Rule.getRule189());
				ast.addChild(this, (Ast)getSym(Rule.getRule189(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule189(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule189(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 190: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule190()); }
				ast = Factory.createAst("pw_boolean_or_oo");
				ast.setRule(Rule.getRule190());
				ast.addChild(this, (Ast)getSym(Rule.getRule190(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule190(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule190(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 191: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule191()); }
				ast = Factory.createAst("pw_boolean_and_oo");
				ast.setRule(Rule.getRule191());
				ast.addChild(this, (Ast)getSym(Rule.getRule191(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 192: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule192()); }
				ast = Factory.createAst("pw_boolean_and_oo");
				ast.setRule(Rule.getRule192());
				ast.addChild(this, (Ast)getSym(Rule.getRule192(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule192(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule192(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 193: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule193()); }
				ast = Factory.createAst("pw_boolean_and_oo");
				ast.setRule(Rule.getRule193());
				ast.addChild(this, (Ast)getSym(Rule.getRule193(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule193(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule193(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 194: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule194()); }
				ast = Factory.createAst("pw_boolean_bitwise_expr_oo");
				ast.setRule(Rule.getRule194());
				ast.addChild(this, (Ast)getSym(Rule.getRule194(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 195: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule195()); }
				ast = Factory.createAst("pw_boolean_bitwise_or_oo");
				ast.setRule(Rule.getRule195());
				ast.addChild(this, (Ast)getSym(Rule.getRule195(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 196: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule196()); }
				ast = Factory.createAst("pw_boolean_bitwise_or_oo");
				ast.setRule(Rule.getRule196());
				ast.addChild(this, (Ast)getSym(Rule.getRule196(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule196(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule196(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 197: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule197()); }
				ast = Factory.createAst("pw_boolean_bitwise_or_oo");
				ast.setRule(Rule.getRule197());
				ast.addChild(this, (Ast)getSym(Rule.getRule197(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule197(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule197(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 198: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule198()); }
				ast = Factory.createAst("pw_boolean_bitwise_xor_oo");
				ast.setRule(Rule.getRule198());
				ast.addChild(this, (Ast)getSym(Rule.getRule198(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 199: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule199()); }
				ast = Factory.createAst("pw_boolean_bitwise_xor_oo");
				ast.setRule(Rule.getRule199());
				ast.addChild(this, (Ast)getSym(Rule.getRule199(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule199(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule199(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 200: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule200()); }
				ast = Factory.createAst("pw_boolean_bitwise_xor_oo");
				ast.setRule(Rule.getRule200());
				ast.addChild(this, (Ast)getSym(Rule.getRule200(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule200(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule200(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 201: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule201()); }
				ast = Factory.createAst("pw_boolean_bitwise_and_oo");
				ast.setRule(Rule.getRule201());
				ast.addChild(this, (Ast)getSym(Rule.getRule201(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 202: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule202()); }
				ast = Factory.createAst("pw_boolean_bitwise_and_oo");
				ast.setRule(Rule.getRule202());
				ast.addChild(this, (Ast)getSym(Rule.getRule202(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule202(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule202(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 203: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule203()); }
				ast = Factory.createAst("pw_boolean_bitwise_and_oo");
				ast.setRule(Rule.getRule203());
				ast.addChild(this, (Ast)getSym(Rule.getRule203(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule203(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule203(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 204: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule204()); }
				ast = Factory.createAst("pw_equal_expr_oo");
				ast.setRule(Rule.getRule204());
				ast.addChild(this, (Ast)getSym(Rule.getRule204(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 205: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule205()); }
				ast = Factory.createAst("pw_equal_expr_oo");
				ast.setRule(Rule.getRule205());
				ast.addChild(this, (Ast)getSym(Rule.getRule205(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule205(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule205(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 206: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule206()); }
				ast = Factory.createAst("pw_equal_expr_oo");
				ast.setRule(Rule.getRule206());
				ast.addChild(this, (Ast)getSym(Rule.getRule206(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule206(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule206(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 207: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule207()); }
				ast = Factory.createAst("pw_equal_expr_oo");
				ast.setRule(Rule.getRule207());
				ast.addChild(this, (Ast)getSym(Rule.getRule207(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule207(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule207(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 208: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule208()); }
				ast = Factory.createAst("pw_equal_expr_oo");
				ast.setRule(Rule.getRule208());
				ast.addChild(this, (Ast)getSym(Rule.getRule208(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule208(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule208(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 209: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule209()); }
				ast = Factory.createAst("pw_equal_expr_oo");
				ast.setRule(Rule.getRule209());
				ast.addChild(this, (Ast)getSym(Rule.getRule209(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule209(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule209(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 210: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule210()); }
				ast = Factory.createAst("pw_compare_expr_oo");
				ast.setRule(Rule.getRule210());
				ast.addChild(this, (Ast)getSym(Rule.getRule210(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 211: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule211()); }
				ast = Factory.createAst("pw_compare_expr_oo");
				ast.setRule(Rule.getRule211());
				ast.addChild(this, (Ast)getSym(Rule.getRule211(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule211(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule211(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 212: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule212()); }
				ast = Factory.createAst("pw_compare_expr_oo");
				ast.setRule(Rule.getRule212());
				ast.addChild(this, (Ast)getSym(Rule.getRule212(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule212(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule212(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 213: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule213()); }
				ast = Factory.createAst("pw_compare_expr_oo");
				ast.setRule(Rule.getRule213());
				ast.addChild(this, (Ast)getSym(Rule.getRule213(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule213(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule213(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 214: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule214()); }
				ast = Factory.createAst("pw_compare_expr_oo");
				ast.setRule(Rule.getRule214());
				ast.addChild(this, (Ast)getSym(Rule.getRule214(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule214(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule214(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 215: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule215()); }
				ast = Factory.createAst("pw_shift_expr_oo");
				ast.setRule(Rule.getRule215());
				ast.addChild(this, (Ast)getSym(Rule.getRule215(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 216: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule216()); }
				ast = Factory.createAst("pw_shift_expr_oo");
				ast.setRule(Rule.getRule216());
				ast.addChild(this, (Ast)getSym(Rule.getRule216(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule216(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule216(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 217: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule217()); }
				ast = Factory.createAst("pw_shift_expr_oo");
				ast.setRule(Rule.getRule217());
				ast.addChild(this, (Ast)getSym(Rule.getRule217(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule217(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule217(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 218: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule218()); }
				ast = Factory.createAst("pw_shift_expr_oo");
				ast.setRule(Rule.getRule218());
				ast.addChild(this, (Ast)getSym(Rule.getRule218(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule218(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule218(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 219: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule219()); }
				ast = Factory.createAst("pw_shift_expr_oo");
				ast.setRule(Rule.getRule219());
				ast.addChild(this, (Ast)getSym(Rule.getRule219(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule219(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule219(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 220: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule220()); }
				ast = Factory.createAst("pw_additive_expr_oo");
				ast.setRule(Rule.getRule220());
				ast.addChild(this, (Ast)getSym(Rule.getRule220(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 221: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule221()); }
				ast = Factory.createAst("pw_additive_expr_oo");
				ast.setRule(Rule.getRule221());
				ast.addChild(this, (Ast)getSym(Rule.getRule221(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule221(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule221(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 222: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule222()); }
				ast = Factory.createAst("pw_additive_expr_oo");
				ast.setRule(Rule.getRule222());
				ast.addChild(this, (Ast)getSym(Rule.getRule222(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule222(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule222(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 223: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule223()); }
				ast = Factory.createAst("pw_additive_expr_oo");
				ast.setRule(Rule.getRule223());
				ast.addChild(this, (Ast)getSym(Rule.getRule223(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule223(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule223(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 224: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule224()); }
				ast = Factory.createAst("pw_additive_expr_oo");
				ast.setRule(Rule.getRule224());
				ast.addChild(this, (Ast)getSym(Rule.getRule224(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule224(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule224(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 225: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule225()); }
				ast = Factory.createAst("pw_additive_expr_oo");
				ast.setRule(Rule.getRule225());
				ast.addChild(this, (Ast)getSym(Rule.getRule225(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule225(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule225(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 226: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule226()); }
				ast = Factory.createAst("pw_additive_expr_oo");
				ast.setRule(Rule.getRule226());
				ast.addChild(this, (Ast)getSym(Rule.getRule226(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule226(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule226(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 227: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule227()); }
				ast = Factory.createAst("pw_productive_expr_oo");
				ast.setRule(Rule.getRule227());
				ast.addChild(this, (Ast)getSym(Rule.getRule227(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 228: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule228()); }
				ast = Factory.createAst("pw_productive_expr_oo");
				ast.setRule(Rule.getRule228());
				ast.addChild(this, (Ast)getSym(Rule.getRule228(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule228(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule228(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 229: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule229()); }
				ast = Factory.createAst("pw_productive_expr_oo");
				ast.setRule(Rule.getRule229());
				ast.addChild(this, (Ast)getSym(Rule.getRule229(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule229(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule229(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 230: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule230()); }
				ast = Factory.createAst("pw_productive_expr_oo");
				ast.setRule(Rule.getRule230());
				ast.addChild(this, (Ast)getSym(Rule.getRule230(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule230(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule230(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 231: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule231()); }
				ast = Factory.createAst("pw_productive_expr_oo");
				ast.setRule(Rule.getRule231());
				ast.addChild(this, (Ast)getSym(Rule.getRule231(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule231(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule231(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 232: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule232()); }
				ast = Factory.createAst("pw_productive_expr_oo");
				ast.setRule(Rule.getRule232());
				ast.addChild(this, (Ast)getSym(Rule.getRule232(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule232(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule232(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 233: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule233()); }
				ast = Factory.createAst("pw_productive_expr_oo");
				ast.setRule(Rule.getRule233());
				ast.addChild(this, (Ast)getSym(Rule.getRule233(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule233(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule233(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 234: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule234()); }
				ast = Factory.createAst("pw_unary_plus_expr");
				ast.setRule(Rule.getRule234());
				ast.addChild(this, (Ast)getSym(Rule.getRule234(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule234(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 235: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule235()); }
				ast = Factory.createAst("pw_unary_minus_expr");
				ast.setRule(Rule.getRule235());
				ast.addChild(this, (Ast)getSym(Rule.getRule235(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule235(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 236: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule236()); }
				ast = Factory.createAst("pw_not");
				ast.setRule(Rule.getRule236());
				ast.addChild(this, (Ast)getSym(Rule.getRule236(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule236(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 237: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule237()); }
				ast = Factory.createAst("pw_instanceof_oo");
				ast.setRule(Rule.getRule237());
				ast.addChild(this, (Ast)getSym(Rule.getRule237(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 238: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule238()); }
				ast = Factory.createAst("pw_instanceof_oo");
				ast.setRule(Rule.getRule238());
				ast.addChild(this, (Ast)getSym(Rule.getRule238(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule238(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule238(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 239: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule239()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule239());
				ast.addChild(this, (Ast)getSym(Rule.getRule239(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule239(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 240: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule240()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule240());
				ast.addChild(this, (Ast)getSym(Rule.getRule240(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule240(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 241: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule241()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule241());
				ast.addChild(this, (Ast)getSym(Rule.getRule241(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule241(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 242: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule242()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule242());
				ast.addChild(this, (Ast)getSym(Rule.getRule242(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule242(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 243: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule243()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule243());
				ast.addChild(this, (Ast)getSym(Rule.getRule243(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule243(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 244: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule244()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule244());
				ast.addChild(this, (Ast)getSym(Rule.getRule244(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule244(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 245: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule245()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule245());
				ast.addChild(this, (Ast)getSym(Rule.getRule245(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule245(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 246: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule246()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule246());
				ast.addChild(this, (Ast)getSym(Rule.getRule246(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule246(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 247: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule247()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule247());
				ast.addChild(this, (Ast)getSym(Rule.getRule247(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule247(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 248: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule248()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule248());
				ast.addChild(this, (Ast)getSym(Rule.getRule248(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule248(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 249: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule249()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule249());
				ast.addChild(this, (Ast)getSym(Rule.getRule249(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule249(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 250: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule250()); }
				ast = Factory.createAst("pw_preconversion_expr");
				ast.setRule(Rule.getRule250());
				ast.addChild(this, (Ast)getSym(Rule.getRule250(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule250(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			default:
			break;
		}
		return;
	}
	/**
	 * ruleAction.
	 * @param ruleNumber - the rule number
	 */
	public void ruleAction250(int ruleNumber) {
	Ast ast;
		switch(ruleNumber) {
			case 251: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule251()); }
				ast = Factory.createAst("pw_postconversion_expr_oo");
				ast.setRule(Rule.getRule251());
				ast.addChild(this, (Ast)getSym(Rule.getRule251(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 252: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule252()); }
				ast = Factory.createAst("pw_postconversion_expr_oo");
				ast.setRule(Rule.getRule252());
				ast.addChild(this, (Ast)getSym(Rule.getRule252(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule252(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 253: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule253()); }
				ast = Factory.createAst("pw_postconversion_expr_oo");
				ast.setRule(Rule.getRule253());
				ast.addChild(this, (Ast)getSym(Rule.getRule253(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule253(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 254: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule254()); }
				ast = Factory.createAst("pw_functions_oo");
				ast.setRule(Rule.getRule254());
				ast.addChild(this, (Ast)getSym(Rule.getRule254(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 255: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule255()); }
				ast = Factory.createAst("pw_functions_oo");
				ast.setRule(Rule.getRule255());
				ast.addChild(this, (Ast)getSym(Rule.getRule255(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule255(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule255(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule255(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 256: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule256()); }
				ast = Factory.createAst("pw_functions_oo");
				ast.setRule(Rule.getRule256());
				ast.addChild(this, (Ast)getSym(Rule.getRule256(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule256(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule256(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule256(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 257: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule257()); }
				ast = Factory.createAst("pw_functions_oo");
				ast.setRule(Rule.getRule257());
				ast.addChild(this, (Ast)getSym(Rule.getRule257(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule257(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule257(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule257(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 258: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule258()); }
				ast = Factory.createAst("pw_functions_oo");
				ast.setRule(Rule.getRule258());
				ast.addChild(this, (Ast)getSym(Rule.getRule258(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule258(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 259: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule259()); }
				ast = Factory.createAst("pw_functions_oo");
				ast.setRule(Rule.getRule259());
				ast.addChild(this, (Ast)getSym(Rule.getRule259(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule259(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 260: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule260()); }
				ast = Factory.createAst("pw_functions_oo");
				ast.setRule(Rule.getRule260());
				ast.addChild(this, (Ast)getSym(Rule.getRule260(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule260(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 261: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule261()); }
				ast = Factory.createAst("pw_functions_oo");
				ast.setRule(Rule.getRule261());
				ast.addChild(this, (Ast)getSym(Rule.getRule261(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule261(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 262: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule262()); }
				ast = Factory.createAst("pw_allocation_expr_oo");
				ast.setRule(Rule.getRule262());
				ast.addChild(this, (Ast)getSym(Rule.getRule262(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 263: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule263()); }
				ast = Factory.createAst("pw_allocation_expr_oo");
				ast.setRule(Rule.getRule263());
				ast.addChild(this, (Ast)getSym(Rule.getRule263(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule263(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule263(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 264: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule264()); }
				ast = Factory.createAst("pw_allocation_expr_oo");
				ast.setRule(Rule.getRule264());
				ast.addChild(this, (Ast)getSym(Rule.getRule264(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule264(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 265: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule265()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule265());
				ast.addChild(this, (Ast)getSym(Rule.getRule265(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule265(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 266: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule266()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule266());
				ast.addChild(this, (Ast)getSym(Rule.getRule266(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule266(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 267: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule267()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule267());
				ast.addChild(this, (Ast)getSym(Rule.getRule267(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule267(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule267(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 268: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule268()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule268());
				ast.addChild(this, (Ast)getSym(Rule.getRule268(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule268(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule268(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 269: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule269()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule269());
				ast.addChild(this, (Ast)getSym(Rule.getRule269(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule269(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule269(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule269(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 270: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule270()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule270());
				ast.addChild(this, (Ast)getSym(Rule.getRule270(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 271: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule271()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule271());
				ast.addChild(this, (Ast)getSym(Rule.getRule271(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 272: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule272()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule272());
				ast.addChild(this, (Ast)getSym(Rule.getRule272(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 273: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule273()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule273());
				ast.addChild(this, (Ast)getSym(Rule.getRule273(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 274: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule274()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule274());
				ast.addChild(this, (Ast)getSym(Rule.getRule274(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 275: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule275()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule275());
				ast.addChild(this, (Ast)getSym(Rule.getRule275(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 276: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule276()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule276());
				ast.addChild(this, (Ast)getSym(Rule.getRule276(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 277: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule277()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule277());
				ast.addChild(this, (Ast)getSym(Rule.getRule277(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 278: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule278()); }
				ast = Factory.createAst("pw_others");
				ast.setRule(Rule.getRule278());
				ast.addChild(this, (Ast)getSym(Rule.getRule278(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 279: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule279()); }
				ast = Factory.createAst("function_call");
				ast.setRule(Rule.getRule279());
				ast.addChild(this, (Ast)getSym(Rule.getRule279(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule279(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule279(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule279(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 280: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule280()); }
				ast = Factory.createAst("function_call");
				ast.setRule(Rule.getRule280());
				ast.addChild(this, (Ast)getSym(Rule.getRule280(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule280(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule280(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule280(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 281: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule281()); }
				ast = Factory.createAst("class_function_call");
				ast.setRule(Rule.getRule281());
				ast.addChild(this, (Ast)getSym(Rule.getRule281(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule281(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule281(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule281(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule281(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule281(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 282: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule282()); }
				ast = Factory.createAst("class_function_call");
				ast.setRule(Rule.getRule282());
				ast.addChild(this, (Ast)getSym(Rule.getRule282(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule282(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule282(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule282(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule282(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule282(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 283: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule283()); }
				ast = Factory.createAst("fully_qualified_class_name");
				ast.setRule(Rule.getRule283());
				ast.addChild(this, (Ast)getSym(Rule.getRule283(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 284: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule284()); }
				ast = Factory.createAst("class_name_reference");
				ast.setRule(Rule.getRule284());
				ast.addChild(this, (Ast)getSym(Rule.getRule284(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 285: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule285()); }
				ast = Factory.createAst("class_name_reference");
				ast.setRule(Rule.getRule285());
				ast.addChild(this, (Ast)getSym(Rule.getRule285(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 286: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule286()); }
				ast = Factory.createAst("dynamic_class_name_reference");
				ast.setRule(Rule.getRule286());
				ast.addChild(this, (Ast)getSym(Rule.getRule286(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule286(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule286(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule286(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 287: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule287()); }
				ast = Factory.createAst("dynamic_class_name_reference");
				ast.setRule(Rule.getRule287());
				ast.addChild(this, (Ast)getSym(Rule.getRule287(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 288: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule288()); }
				ast = Factory.createAst("dynamic_class_name_variable_properties");
				ast.setRule(Rule.getRule288());
				ast.addChild(this, (Ast)getSym(Rule.getRule288(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule288(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 289: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule289()); }
				ast = Factory.createAst("dynamic_class_name_variable_properties");
				ast.setRule(Rule.getRule289());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 290: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule290()); }
				ast = Factory.createAst("dynamic_class_name_variable_property");
				ast.setRule(Rule.getRule290());
				ast.addChild(this, (Ast)getSym(Rule.getRule290(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule290(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 291: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule291()); }
				ast = Factory.createAst("exit_expr");
				ast.setRule(Rule.getRule291());
				ast.addChild(this, (Ast)getSym(Rule.getRule291(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule291(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 292: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule292()); }
				ast = Factory.createAst("exit_expr");
				ast.setRule(Rule.getRule292());
				ast.addChild(this, (Ast)getSym(Rule.getRule292(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule292(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule292(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 293: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule293()); }
				ast = Factory.createAst("exit_expr");
				ast.setRule(Rule.getRule293());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 294: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule294()); }
				ast = Factory.createAst("ctor_arguments");
				ast.setRule(Rule.getRule294());
				ast.addChild(this, (Ast)getSym(Rule.getRule294(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule294(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule294(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 295: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule295()); }
				ast = Factory.createAst("ctor_arguments");
				ast.setRule(Rule.getRule295());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 296: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule296()); }
				ast = Factory.createAst("sign");
				ast.setRule(Rule.getRule296());
				ast.addChild(this, (Ast)getSym(Rule.getRule296(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 297: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule297()); }
				ast = Factory.createAst("sign");
				ast.setRule(Rule.getRule297());
				ast.addChild(this, (Ast)getSym(Rule.getRule297(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 298: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule298()); }
				ast = Factory.createAst("common_scalar");
				ast.setRule(Rule.getRule298());
				ast.addChild(this, (Ast)getSym(Rule.getRule298(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule298(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 299: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule299()); }
				ast = Factory.createAst("common_scalar");
				ast.setRule(Rule.getRule299());
				ast.addChild(this, (Ast)getSym(Rule.getRule299(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule299(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 300: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule300()); }
				ast = Factory.createAst("common_scalar");
				ast.setRule(Rule.getRule300());
				ast.addChild(this, (Ast)getSym(Rule.getRule300(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 301: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule301()); }
				ast = Factory.createAst("common_scalar");
				ast.setRule(Rule.getRule301());
				ast.addChild(this, (Ast)getSym(Rule.getRule301(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 302: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule302()); }
				ast = Factory.createAst("common_scalar");
				ast.setRule(Rule.getRule302());
				ast.addChild(this, (Ast)getSym(Rule.getRule302(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule302(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 303: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule303()); }
				ast = Factory.createAst("common_scalar");
				ast.setRule(Rule.getRule303());
				ast.addChild(this, (Ast)getSym(Rule.getRule303(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 304: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule304()); }
				ast = Factory.createAst("common_scalar");
				ast.setRule(Rule.getRule304());
				ast.addChild(this, (Ast)getSym(Rule.getRule304(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 305: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule305()); }
				ast = Factory.createAst("common_scalar");
				ast.setRule(Rule.getRule305());
				ast.addChild(this, (Ast)getSym(Rule.getRule305(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 306: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule306()); }
				ast = Factory.createAst("common_scalar");
				ast.setRule(Rule.getRule306());
				ast.addChild(this, (Ast)getSym(Rule.getRule306(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 307: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule307()); }
				ast = Factory.createAst("common_scalar");
				ast.setRule(Rule.getRule307());
				ast.addChild(this, (Ast)getSym(Rule.getRule307(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 308: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule308()); }
				ast = Factory.createAst("static_scalar");
				ast.setRule(Rule.getRule308());
				ast.addChild(this, (Ast)getSym(Rule.getRule308(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 309: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule309()); }
				ast = Factory.createAst("static_scalar");
				ast.setRule(Rule.getRule309());
				ast.addChild(this, (Ast)getSym(Rule.getRule309(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 310: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule310()); }
				ast = Factory.createAst("static_scalar");
				ast.setRule(Rule.getRule310());
				ast.addChild(this, (Ast)getSym(Rule.getRule310(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule310(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule310(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule310(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 311: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule311()); }
				ast = Factory.createAst("static_scalar");
				ast.setRule(Rule.getRule311());
				ast.addChild(this, (Ast)getSym(Rule.getRule311(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule311(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule311(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule311(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 312: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule312()); }
				ast = Factory.createAst("static_scalar");
				ast.setRule(Rule.getRule312());
				ast.addChild(this, (Ast)getSym(Rule.getRule312(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule312(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule312(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule312(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 313: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule313()); }
				ast = Factory.createAst("static_scalar");
				ast.setRule(Rule.getRule313());
				ast.addChild(this, (Ast)getSym(Rule.getRule313(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 314: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule314()); }
				ast = Factory.createAst("static_class_constant");
				ast.setRule(Rule.getRule314());
				ast.addChild(this, (Ast)getSym(Rule.getRule314(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule314(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule314(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 315: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule315()); }
				ast = Factory.createAst("scalar");
				ast.setRule(Rule.getRule315());
				ast.addChild(this, (Ast)getSym(Rule.getRule315(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 316: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule316()); }
				ast = Factory.createAst("scalar");
				ast.setRule(Rule.getRule316());
				ast.addChild(this, (Ast)getSym(Rule.getRule316(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 317: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule317()); }
				ast = Factory.createAst("scalar");
				ast.setRule(Rule.getRule317());
				ast.addChild(this, (Ast)getSym(Rule.getRule317(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 318: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule318()); }
				ast = Factory.createAst("scalar");
				ast.setRule(Rule.getRule318());
				ast.addChild(this, (Ast)getSym(Rule.getRule318(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 319: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule319()); }
				ast = Factory.createAst("scalar");
				ast.setRule(Rule.getRule319());
				ast.addChild(this, (Ast)getSym(Rule.getRule319(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule319(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule319(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule319(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 320: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule320()); }
				ast = Factory.createAst("scalar");
				ast.setRule(Rule.getRule320());
				ast.addChild(this, (Ast)getSym(Rule.getRule320(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule320(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule320(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule320(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 321: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule321()); }
				ast = Factory.createAst("scalar");
				ast.setRule(Rule.getRule321());
				ast.addChild(this, (Ast)getSym(Rule.getRule321(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule321(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule321(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule321(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 322: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule322()); }
				ast = Factory.createAst("possibly_binary");
				ast.setRule(Rule.getRule322());
				ast.addChild(this, (Ast)getSym(Rule.getRule322(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 323: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule323()); }
				ast = Factory.createAst("possibly_binary");
				ast.setRule(Rule.getRule323());
				ast.addChild(this, (Ast)getSym(Rule.getRule323(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 324: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule324()); }
				ast = Factory.createAst("possibly_binary");
				ast.setRule(Rule.getRule324());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 325: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule325()); }
				ast = Factory.createAst("class_constant");
				ast.setRule(Rule.getRule325());
				ast.addChild(this, (Ast)getSym(Rule.getRule325(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule325(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule325(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 326: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule326()); }
				ast = Factory.createAst("static_array_pair_list");
				ast.setRule(Rule.getRule326());
				ast.addChild(this, (Ast)getSym(Rule.getRule326(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule326(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 327: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule327()); }
				ast = Factory.createAst("static_array_pair_list");
				ast.setRule(Rule.getRule327());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 328: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule328()); }
				ast = Factory.createAst("possible_comma");
				ast.setRule(Rule.getRule328());
				ast.addChild(this, (Ast)getSym(Rule.getRule328(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 329: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule329()); }
				ast = Factory.createAst("possible_comma");
				ast.setRule(Rule.getRule329());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 330: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule330()); }
				ast = Factory.createAst("non_empty_static_array_pair_list");
				ast.setRule(Rule.getRule330());
				ast.addChild(this, (Ast)getSym(Rule.getRule330(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule330(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule330(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 331: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule331()); }
				ast = Factory.createAst("non_empty_static_array_pair_list");
				ast.setRule(Rule.getRule331());
				ast.addChild(this, (Ast)getSym(Rule.getRule331(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 332: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule332()); }
				ast = Factory.createAst("non_empty_static_array_pair");
				ast.setRule(Rule.getRule332());
				ast.addChild(this, (Ast)getSym(Rule.getRule332(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule332(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule332(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 333: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule333()); }
				ast = Factory.createAst("non_empty_static_array_pair");
				ast.setRule(Rule.getRule333());
				ast.addChild(this, (Ast)getSym(Rule.getRule333(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 334: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule334()); }
				ast = Factory.createAst("expr");
				ast.setRule(Rule.getRule334());
				ast.addChild(this, (Ast)getSym(Rule.getRule334(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 335: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule335()); }
				ast = Factory.createAst("variable");
				ast.setRule(Rule.getRule335());
				ast.addChild(this, (Ast)getSym(Rule.getRule335(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule335(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule335(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule335(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule335(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 336: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule336()); }
				ast = Factory.createAst("variable");
				ast.setRule(Rule.getRule336());
				ast.addChild(this, (Ast)getSym(Rule.getRule336(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 337: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule337()); }
				ast = Factory.createAst("variable_properties");
				ast.setRule(Rule.getRule337());
				ast.addChild(this, (Ast)getSym(Rule.getRule337(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule337(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 338: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule338()); }
				ast = Factory.createAst("variable_properties");
				ast.setRule(Rule.getRule338());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 339: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule339()); }
				ast = Factory.createAst("variable_property");
				ast.setRule(Rule.getRule339());
				ast.addChild(this, (Ast)getSym(Rule.getRule339(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule339(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule339(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 340: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule340()); }
				ast = Factory.createAst("method_or_not");
				ast.setRule(Rule.getRule340());
				ast.addChild(this, (Ast)getSym(Rule.getRule340(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule340(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule340(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 341: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule341()); }
				ast = Factory.createAst("method_or_not");
				ast.setRule(Rule.getRule341());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 342: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule342()); }
				ast = Factory.createAst("variable_without_objects");
				ast.setRule(Rule.getRule342());
				ast.addChild(this, (Ast)getSym(Rule.getRule342(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 343: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule343()); }
				ast = Factory.createAst("variable_without_objects");
				ast.setRule(Rule.getRule343());
				ast.addChild(this, (Ast)getSym(Rule.getRule343(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule343(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 344: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule344()); }
				ast = Factory.createAst("static_member");
				ast.setRule(Rule.getRule344());
				ast.addChild(this, (Ast)getSym(Rule.getRule344(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule344(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule344(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 345: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule345()); }
				ast = Factory.createAst("base_variable_with_function_calls");
				ast.setRule(Rule.getRule345());
				ast.addChild(this, (Ast)getSym(Rule.getRule345(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 346: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule346()); }
				ast = Factory.createAst("base_variable_with_function_calls");
				ast.setRule(Rule.getRule346());
				ast.addChild(this, (Ast)getSym(Rule.getRule346(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 347: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule347()); }
				ast = Factory.createAst("base_variable_with_function_calls");
				ast.setRule(Rule.getRule347());
				ast.addChild(this, (Ast)getSym(Rule.getRule347(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 348: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule348()); }
				ast = Factory.createAst("base_variable");
				ast.setRule(Rule.getRule348());
				ast.addChild(this, (Ast)getSym(Rule.getRule348(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 349: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule349()); }
				ast = Factory.createAst("base_variable");
				ast.setRule(Rule.getRule349());
				ast.addChild(this, (Ast)getSym(Rule.getRule349(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule349(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 350: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule350()); }
				ast = Factory.createAst("base_variable");
				ast.setRule(Rule.getRule350());
				ast.addChild(this, (Ast)getSym(Rule.getRule350(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 351: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule351()); }
				ast = Factory.createAst("reference_variable");
				ast.setRule(Rule.getRule351());
				ast.addChild(this, (Ast)getSym(Rule.getRule351(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule351(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule351(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule351(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 352: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule352()); }
				ast = Factory.createAst("reference_variable");
				ast.setRule(Rule.getRule352());
				ast.addChild(this, (Ast)getSym(Rule.getRule352(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule352(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule352(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule352(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 353: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule353()); }
				ast = Factory.createAst("reference_variable");
				ast.setRule(Rule.getRule353());
				ast.addChild(this, (Ast)getSym(Rule.getRule353(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 354: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule354()); }
				ast = Factory.createAst("compound_variable");
				ast.setRule(Rule.getRule354());
				ast.addChild(this, (Ast)getSym(Rule.getRule354(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 355: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule355()); }
				ast = Factory.createAst("compound_variable");
				ast.setRule(Rule.getRule355());
				ast.addChild(this, (Ast)getSym(Rule.getRule355(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule355(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule355(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule355(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 356: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule356()); }
				ast = Factory.createAst("compound_variable");
				ast.setRule(Rule.getRule356());
				ast.addChild(this, (Ast)getSym(Rule.getRule356(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule356(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule356(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 357: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule357()); }
				ast = Factory.createAst("dim_offset");
				ast.setRule(Rule.getRule357());
				ast.addChild(this, (Ast)getSym(Rule.getRule357(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 358: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule358()); }
				ast = Factory.createAst("dim_offset");
				ast.setRule(Rule.getRule358());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 359: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule359()); }
				ast = Factory.createAst("object_property");
				ast.setRule(Rule.getRule359());
				ast.addChild(this, (Ast)getSym(Rule.getRule359(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 360: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule360()); }
				ast = Factory.createAst("object_property");
				ast.setRule(Rule.getRule360());
				ast.addChild(this, (Ast)getSym(Rule.getRule360(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 361: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule361()); }
				ast = Factory.createAst("object_dim_list");
				ast.setRule(Rule.getRule361());
				ast.addChild(this, (Ast)getSym(Rule.getRule361(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule361(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule361(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule361(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 362: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule362()); }
				ast = Factory.createAst("object_dim_list");
				ast.setRule(Rule.getRule362());
				ast.addChild(this, (Ast)getSym(Rule.getRule362(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule362(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule362(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule362(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 363: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule363()); }
				ast = Factory.createAst("object_dim_list");
				ast.setRule(Rule.getRule363());
				ast.addChild(this, (Ast)getSym(Rule.getRule363(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 364: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule364()); }
				ast = Factory.createAst("variable_name");
				ast.setRule(Rule.getRule364());
				ast.addChild(this, (Ast)getSym(Rule.getRule364(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 365: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule365()); }
				ast = Factory.createAst("variable_name");
				ast.setRule(Rule.getRule365());
				ast.addChild(this, (Ast)getSym(Rule.getRule365(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule365(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule365(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 366: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule366()); }
				ast = Factory.createAst("simple_indirect_reference");
				ast.setRule(Rule.getRule366());
				ast.addChild(this, (Ast)getSym(Rule.getRule366(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 367: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule367()); }
				ast = Factory.createAst("simple_indirect_reference");
				ast.setRule(Rule.getRule367());
				ast.addChild(this, (Ast)getSym(Rule.getRule367(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule367(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 368: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule368()); }
				ast = Factory.createAst("assignment_list");
				ast.setRule(Rule.getRule368());
				ast.addChild(this, (Ast)getSym(Rule.getRule368(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule368(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule368(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 369: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule369()); }
				ast = Factory.createAst("assignment_list");
				ast.setRule(Rule.getRule369());
				ast.addChild(this, (Ast)getSym(Rule.getRule369(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 370: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule370()); }
				ast = Factory.createAst("assignment_list_element");
				ast.setRule(Rule.getRule370());
				ast.addChild(this, (Ast)getSym(Rule.getRule370(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 371: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule371()); }
				ast = Factory.createAst("assignment_list_element");
				ast.setRule(Rule.getRule371());
				ast.addChild(this, (Ast)getSym(Rule.getRule371(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 372: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule372()); }
				ast = Factory.createAst("assignment_list_element");
				ast.setRule(Rule.getRule372());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 373: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule373()); }
				ast = Factory.createAst("list_expression");
				ast.setRule(Rule.getRule373());
				ast.addChild(this, (Ast)getSym(Rule.getRule373(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule373(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule373(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule373(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 374: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule374()); }
				ast = Factory.createAst("array_pair_list");
				ast.setRule(Rule.getRule374());
				ast.addChild(this, (Ast)getSym(Rule.getRule374(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule374(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 375: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule375()); }
				ast = Factory.createAst("array_pair_list");
				ast.setRule(Rule.getRule375());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 376: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule376()); }
				ast = Factory.createAst("non_empty_array_pair_list");
				ast.setRule(Rule.getRule376());
				ast.addChild(this, (Ast)getSym(Rule.getRule376(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule376(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule376(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 377: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule377()); }
				ast = Factory.createAst("non_empty_array_pair_list");
				ast.setRule(Rule.getRule377());
				ast.addChild(this, (Ast)getSym(Rule.getRule377(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 378: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule378()); }
				ast = Factory.createAst("non_empty_array_pair");
				ast.setRule(Rule.getRule378());
				ast.addChild(this, (Ast)getSym(Rule.getRule378(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 379: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule379()); }
				ast = Factory.createAst("non_empty_array_pair");
				ast.setRule(Rule.getRule379());
				ast.addChild(this, (Ast)getSym(Rule.getRule379(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule379(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule379(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 380: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule380()); }
				ast = Factory.createAst("non_empty_array_pair");
				ast.setRule(Rule.getRule380());
				ast.addChild(this, (Ast)getSym(Rule.getRule380(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 381: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule381()); }
				ast = Factory.createAst("non_empty_array_pair_ref");
				ast.setRule(Rule.getRule381());
				ast.addChild(this, (Ast)getSym(Rule.getRule381(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule381(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule381(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule381(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 382: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule382()); }
				ast = Factory.createAst("non_empty_array_pair_ref");
				ast.setRule(Rule.getRule382());
				ast.addChild(this, (Ast)getSym(Rule.getRule382(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule382(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 383: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule383()); }
				ast = Factory.createAst("encaps_list");
				ast.setRule(Rule.getRule383());
				ast.addChild(this, (Ast)getSym(Rule.getRule383(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule383(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 384: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule384()); }
				ast = Factory.createAst("encaps_list");
				ast.setRule(Rule.getRule384());
				ast.addChild(this, (Ast)getSym(Rule.getRule384(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule384(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 385: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule385()); }
				ast = Factory.createAst("encaps_list");
				ast.setRule(Rule.getRule385());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 386: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule386()); }
				ast = Factory.createAst("static_encaps_list");
				ast.setRule(Rule.getRule386());
				ast.addChild(this, (Ast)getSym(Rule.getRule386(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule386(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 387: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule387()); }
				ast = Factory.createAst("static_encaps_list");
				ast.setRule(Rule.getRule387());
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 388: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule388()); }
				ast = Factory.createAst("encaps_var");
				ast.setRule(Rule.getRule388());
				ast.addChild(this, (Ast)getSym(Rule.getRule388(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 389: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule389()); }
				ast = Factory.createAst("encaps_var");
				ast.setRule(Rule.getRule389());
				ast.addChild(this, (Ast)getSym(Rule.getRule389(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule389(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule389(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule389(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 390: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule390()); }
				ast = Factory.createAst("encaps_var");
				ast.setRule(Rule.getRule390());
				ast.addChild(this, (Ast)getSym(Rule.getRule390(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule390(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule390(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 391: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule391()); }
				ast = Factory.createAst("encaps_var");
				ast.setRule(Rule.getRule391());
				ast.addChild(this, (Ast)getSym(Rule.getRule391(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule391(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule391(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 392: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule392()); }
				ast = Factory.createAst("encaps_var");
				ast.setRule(Rule.getRule392());
				ast.addChild(this, (Ast)getSym(Rule.getRule392(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule392(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule392(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				ast.addChild(this, (Ast)getSym(Rule.getRule392(), 4), prsStream.getTokenAt(lpgParser.getToken(4)));
				ast.addChild(this, (Ast)getSym(Rule.getRule392(), 5), prsStream.getTokenAt(lpgParser.getToken(5)));
				ast.addChild(this, (Ast)getSym(Rule.getRule392(), 6), prsStream.getTokenAt(lpgParser.getToken(6)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 393: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule393()); }
				ast = Factory.createAst("encaps_var");
				ast.setRule(Rule.getRule393());
				ast.addChild(this, (Ast)getSym(Rule.getRule393(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule393(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule393(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 394: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule394()); }
				ast = Factory.createAst("encaps_var_offset");
				ast.setRule(Rule.getRule394());
				ast.addChild(this, (Ast)getSym(Rule.getRule394(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 395: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule395()); }
				ast = Factory.createAst("encaps_var_offset");
				ast.setRule(Rule.getRule395());
				ast.addChild(this, (Ast)getSym(Rule.getRule395(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 396: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule396()); }
				ast = Factory.createAst("encaps_var_offset");
				ast.setRule(Rule.getRule396());
				ast.addChild(this, (Ast)getSym(Rule.getRule396(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 397: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule397()); }
				ast = Factory.createAst("encaps_var_offset");
				ast.setRule(Rule.getRule397());
				ast.addChild(this, (Ast)getSym(Rule.getRule397(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 398: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule398()); }
				ast = Factory.createAst("isset_variables");
				ast.setRule(Rule.getRule398());
				ast.addChild(this, (Ast)getSym(Rule.getRule398(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			case 399: 
				if (debug) { System.out.println("Reduce: " + Rule.getRule399()); }
				ast = Factory.createAst("isset_variables");
				ast.setRule(Rule.getRule399());
				ast.addChild(this, (Ast)getSym(Rule.getRule399(), 1), prsStream.getTokenAt(lpgParser.getToken(1)));
				ast.addChild(this, (Ast)getSym(Rule.getRule399(), 2), prsStream.getTokenAt(lpgParser.getToken(2)));
				ast.addChild(this, (Ast)getSym(Rule.getRule399(), 3), prsStream.getTokenAt(lpgParser.getToken(3)));
				setSym1(ast);
				if (debug) { System.out.println("   -> Ast node: " + ast.toString()); }
				break;

			default:
			break;
		}
		return;
	}
    /**
     * set the symbol.
     * @param node - the ast node.
     */ 
    public void setSym1(Ast node) {
    	lpgParser.setSym1(node);
    }
    
    /**
     * get the symbol.
     * @param rule - the rule
     * @param n - the element.
     * @return - the ast node.
     */
    private Ast getSym(Rule rule, int n) {
    	if (rule.isTerminal(n - 1)) {
			return null;
	    }
    	return (Ast)lpgParser.getSym(n);
    }

}


